The present invention is related to a method and a system for determining at least one property of a servo-controlled mechanical motion such as a joint of a manipulator.
Robots have found wide application in many areas of industry. In particular, some industrial areas involve performing tasks dangerous to human health or labor performed under conditions not possible for humans to withstand. Other areas of industry involve repetitive tasks which can be performed much more efficiently and precisely by a robot.
An industrial robot typically comprises a manipulator devised to manipulate or process work-pieces and materials. The manipulator normally has an arm-like arrangement consisting of a series of segments, each of which is referred to as a link. Movement of each of these segments is sometimes a combination of a translational movement and a rotation around an axis. In other cases, the movement consists exclusively of a translational or a rotational movement. Both of these movement variations give each link a mechanical degree of freedom around or along what in the following will be referred to as a joint. Variants of a joint, such as spherical joints, can be considered as combinations of these simple translational or rotational joints, and the formal equivalence of these types of joints is consistent with the concept of generalized coordinates present in robotics literature. Correspondingly, forces and torques are considered equivalent, as is also the case for positions and angles, respectively.
A joint is typically actuated by a servo-controlled motor, which is controlled via feedback from the measured motion of the motor. The motor actuates the joint via a drivetrain that comprises gears and other transmission elements for the reduction of motor rotation to joint rotation. For the purposes of this application, the term drivetrain is to be construed as excluding the motor. The purpose of the transmission elements is to reduce speed and thereby increase torque.
Drivetrains are superfluous in so called direct-drive robots, but, due to inherent problems this type of robots is ridden with, especially regarding the control stiffness during force interaction between an end-effector (tool) and the work-piece, almost all modern robots are built with a dedicated drivetrain for each joint.
An actuator is to be construed as a motor (with its outgoing shaft) or another type of device able to convert energy into a mechanical effect on the drivetrain. Although the drivetrain is not considered to be part of the actuator for the purposes of this application, the sensors for measuring the motor angle are. Their output value is referred to as actuator position. The joint angle is normally only measured via the actuator. For this reason, transmission elements need to be manufactured with high precision and quality so that the manipulator's motions will accurately correspond to the performed actuation. However, end customers are typically not willing to accept the price increase imposed by the use of high quality materials why the suppliers are forced to manufacture the manipulators with components in the lower price segment.
Most modern, industrial manipulators have six degrees of freedom (DOF), i.e. they have six pairs of rotational joints and links that are serially connected. The ultimate link ends with a tool flange or an end flange for mounting of the end-effector (tool). An alternative to direct mounting of the end-effector onto the flange is the use of a tool exchanger consisting of a manipulator part that is mounted on the end-flange of the manipulator and a tool part that provides a mounting surface for the respective tool. The two tool exchanger parts are detachable and may be locked in place by means of a locking mechanism that is actuated by e.g. pneumatics. This enables simplified change of the tool. An automatic change of the tool, i.e. without manual work involved, can then be accomplished by the robot docking to a selected tool that then is fixedly attached to the manipulator by means of the locking mechanism of the tool exchanger.
Movement of the manipulator can either be effected manually by an operator or automatically by performing instructions according to a user program that defines the robot task. In the latter case the manipulator is controlled by the user program loaded or entered into a controller that controls the manipulator guiding it to reach a programmed pose. Such a pose consists of a position and an orientation for the desired end-effector placement. Hence, the controller is the part of the robot that controls the movement of the manipulator, including its joints.
To support efficient specification of poses for the end-effector, either manually or in the user program, and possibly from CAD data, the controller contains a kinematic model of the manipulator. Such a model includes a model of the joints and the links and their geometric relations.
In robot applications, e.g. industrial robots in manufacturing plants, it is very valuable if the resulting physical pose, within certain tolerances, agrees with the programmed pose. If that is not the case, it means there is a deviation between the programmed pose and the physical pose. This deviation could occur either at a single location or at a plurality of locations along a path, or at any use of the robot. Managing deviations by the user via adjustments in the user program or by teach-in of (slightly deviating) programmed poses, limits the reuse of robot tasks and increases the cost for robot programming and deployment.
In the early age of robotics the major deviations were due to deficient control, but from the mid-1980:s and onwards robots deviate from their programmed motion mainly due to manipulator properties in combination with the lack of control compensation of drivetrain inaccuracies as reflected in the manipulator properties. More specifically, the controller often has a suitable structure and functionality but lacks the actual robot specific data for the individual manipulator to support such compensation. There is thus a need to address these drawbacks in order to minimize deviations between the programmed and physical motions.
Notwithstanding this, further causes for deviations from the programmed motion are known in the art. In particular, one such cause may be inaccuracies in the link and joint geometries, e.g. due to kinematic errors. Kinematic errors can be managed by kinematic calibration, which is usually available from the robot manufacturer. Another cause of deviation is related to inaccuracies in the joint and arm mechanics and/or control of the arm dynamics during high-speed motion, such as torque saturation due to joint-wise or multi-body effects. Normally, such deviations are managed by model-based control provided by the robot manufacturer. Yet another cause of deviations from a programmed pose stems from inaccuracies due to force interaction between the end-effector of the manipulator and the work-piece, but also due to gravity and other forces acting upon the manipulator. Such deviations are also related to joint dynamics around or along the joint motion due to compliance and tolerances of bearings and other joint parts such as the transmission elements of the drivetrain.
Several types of solutions exist which deal with measuring and identification of the types of sources of deviation mentioned earlier. Amongst these, measurements with optical tracking systems are the most common. One type of solution uses external calibration systems with external sensors detecting torque or position of the joints or of the end-effector. While applicable to large scale production facilities with a large number of robots, the cost of such external calibration systems often exceeds the cost of a single robot. In smaller scale production facilities relying on the operation of one or a few robots, such external calibration systems are not applicable due to prohibitive cost. One example of an external calibration system is described in WO2012/076038.
A slightly modified version of the calibration system of the above kind is presented in the article “Kinematic Calibration by Direct estimation of the Jacobian Matrix” by Bennet, Hollerbach and Henri (presented at ICRA, 1992, in Nice, France). In the article, parameters in a Jacobian matrix (expressing the dependence between endpoint velocities and joint velocities, or correspondingly for the forces/torques) for a robot are estimated by first clamping the robot in a predefined pose and then actuating the joints of the robot based on information from an external force/torque sensor attached to a tool flange close to the point of clamping. Alternatively, a rigid rod that is jointed at both ends, or some other mechanism that in a well-defined way restricts movement of the manipulator relative to the environment, can be used for constraining one or more degrees of freedom, but such that certain joint motions are possible also in the clamped configuration. Data obtained from a set of such actuations result in a set of matrices, which are used to calculate the kinematic parameters. But even with kinematic calibration being performed with a force/torque-based method involving clamping, the actuator-to-joint dynamics remains neglected. As a result, accuracy is reduced so that this method, involving clamping of the joint, is not used in practice. Moreover, due to the properties of the drivetrain for each joint, the deviations caused by dynamic forces and force interactions with the work piece remain uncompensated for in current industrial applications.